#########################################################################################

# 定义内核源码路径
KERN_DIR := /home/elf/work/ELF2-linux-source/kernel

# 定义交叉编译工具链路径前缀
CROSS_COMPILE=aarch64-none-linux-gnu-

# 定义目标架构
ARCH := arm64

# 定义模块名称
obj-m += gpio_drv.o

# 定义测试程序名称
TEST_APP := button_test

# 声明伪目标
.PHONY: all clean

# 默认构建目标（编译模块 + 测试程序）
all: modules $(TEST_APP)

# 编译内核模块
modules:
	$(MAKE) -C $(KERN_DIR) \
		M=$(CURDIR) \
		ARCH=$(ARCH) \
		CROSS_COMPILE=$(CROSS_COMPILE) \
		modules

# 编译测试程序
$(TEST_APP): button_test.c
	$(CROSS_COMPILE)gcc -o $@ $< -static  

# 清理构建产物
clean:
	$(MAKE) -C $(KERN_DIR) \
		M=$(CURDIR) \
		ARCH=$(ARCH) \
		CROSS_COMPILE=$(CROSS_COMPILE) \
		clean
	rm -f $(TEST_APP) modules.order

#########################################################################################
